import { NextRequest, NextResponse } from "next/server"; import { prisma } from "@/lib/prisma"; import { existsSync, readFileSync } from "fs"; import path from "path"; import mime from "mime-types"; const AVATARS_DIR = path.join(process.env.UPLOAD_DIR || "./uploads", "avatars"); export async function GET( _request: NextRequest, { params }: { params: { id: string } } ) { const user = await prisma.user.findUnique({ where: { id: params.id }, select: { avatarPath: true }, }); if (!user || !user.avatarPath) { return NextResponse.json({ error: "Avatar introuvable" }, { status: 404 }); } const fullPath = path.join(AVATARS_DIR, user.avatarPath); if (!existsSync(fullPath)) { return NextResponse.json({ error: "Fichier avatar introuvable" }, { status: 404 }); } const buffer = readFileSync(fullPath); const mimeType = mime.lookup(user.avatarPath) || "image/png"; return new NextResponse(buffer, { headers: { "Content-Type": mimeType, "Cache-Control": "public, max-age=3600", }, }); }